package app.modules.menu.util.conversion;

import app.modules.common.annotation.ConvertFrom;
import app.modules.common.annotation.ConvertTo;
import app.modules.menu.dto.dal.MenuDetailDalDTO;
import app.modules.menu.dto.web.menu.WebHierarchyMenuDTO;
import app.modules.menu.dto.web.menu.WebMenuDTO;
import app.modules.menu.dto.web.menu.WebMenuSaveDTO;
import jasmine.framework.common.util.MapperUtil;
import jasmine.security.rbac.model.SecMenu;

/**
 * @author mh.z
 */
public class MenuConvertUtil {

    @ConvertFrom(WebMenuSaveDTO.class)
    @ConvertTo(SecMenu.class)
    public static SecMenu webMenuSaveDTO2SecMenu(WebMenuSaveDTO saveDTO) {
        if (saveDTO == null) {
            return null;
        }

        return MapperUtil.mapTo(saveDTO, SecMenu.class);
    }

    @ConvertFrom(MenuDetailDalDTO.class)
    @ConvertTo(WebMenuDTO.class)
    public static WebMenuDTO menuDetailDalDTO2WebMenuDTO(MenuDetailDalDTO menuDetailDalDTO) {
        if (menuDetailDalDTO == null) {
            return null;
        }

        return MapperUtil.mapTo(menuDetailDalDTO, WebMenuDTO.class);
    }

    @ConvertFrom(MenuDetailDalDTO.class)
    @ConvertTo(WebHierarchyMenuDTO.class)
    public static WebHierarchyMenuDTO menuDetailDalDTO2WebHierarchyMenuDTO(MenuDetailDalDTO menuDalDTO) {
        if (menuDalDTO == null) {
            return null;
        }

        return MapperUtil.mapTo(menuDalDTO, WebHierarchyMenuDTO.class);
    }

}
